The rendering of two-dimensional (2D) computer generated images (CGI) from three-dimensional (3D) models, once done only as part of performing relatively specialized computer-based functions, is increasingly employed in ever more aspects of operating computing devices. Specifically, although video games continue to present the most prevalent use of such images, their use has begun to take hold in websites and as part of graphical user interfaces (GUIs) of an ever increasing array of devices.
Although advances in the design of graphics rendering hardware and increases in the efficiency of rendering algorithms have enabled much of this increasing use of CGI based on 3D models, these advances and efficiency increases have not been sufficient to fully address the limits in processing and power resources that are typical in portable devices. Specifically, the work of shading graphics primitives to provide color and texture to objects in an image continues to demand considerable processing resources, which in turn, places considerable demands on the limited power resources afforded by the batteries and/or other power sources typically found in portable devices. Further, as the pixel resolutions of the displays incorporated into portable devices continue to increase, reductions that have been made in processing and power requirements have been overwhelmed by the exponential increase in the amount of shading caused by such resolution increases.
Previous efforts have been made to at least limit these increasing demands on power resources by attempting to directly reduce the amount of shading that is performed. However, such approaches have increased instances in which inaccurate or incorrect information is introduced as inputs into the shading, such as increased occurrences of extrapolation amidst the performance of interpolation calculations. Such inaccurate or incorrect information frequently results in the introduction of visual artifacts such as “twinkling” pixel colors, lack of smoothness in color transitions across curved surfaces of objects made up of multiple primitives, and/or misplaced shadow boundaries.